/**
 * date: 2018年2月20日
 * 使用'Visual Studio Code 1.18.1'编写
 * 
 * https://www.tslang.cn/docs/handbook/interfaces.html
 * 
 */

interface LabelledValue {
    label: string;
}

function printLabel(labelledObj: LabelledValue){
    console.log( labelledObj.label );
}

let myObj = {size: 10, label: "size 10 Object"};
printLabel( myObj );
/* 以上代码编译成js文件后并没有什么特殊之处! 只在TypeScript中它们是有意义的！ */

/**
 * //只读属性
 */
interface Point {
    readonly x: number;
    readonly y: number;
}
let p1: Point = { x: 10, y: 20 };

let a: number[] = [1, 2, 3, 4];
let ro: ReadonlyArray<number> = a;
/**
 * 函数类型
 */
interface SearchFunc {
    (source: string, subString: string): boolean;
}